package net.techwatch.poi;

import java.lang.reflect.Method;
import java.text.SimpleDateFormat;

/**
 * @author wvandenberghe
 *
 */
public interface Binder {

	/**
	 * @param property
	 */
	void addProperty(String property);
	
	/**
	 * @param property
	 * @return
	 */
	Method getMethod(String property);
	
	/**
	 * @param property
	 * @return
	 */
	Class<?> getParameterType(String property);
	
	/**
	 * @param property
	 * @return
	 */
	SimpleDateFormat getDateFormat(String property);
	
	/**
	 * @param clazz
	 * @return
	 */
	Binder from(Class<?> clazz);
	
	/**
	 * @param name
	 * @return
	 */
	Binder to(String name);
	
	/**
	 * @param format
	 * @return
	 */
	Binder format(String format);
	
	/**
	 * @return
	 */
	String[] bindableProperties();
}
